package cn.dj.org.domain;

import cn.dj.basic.domain.BaseDomain;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 实体类：部门
 */
@Data //自动生成setter，getter，toString等方法
public class Department extends BaseDomain {
    /**
     * 部门ID
     */
//    private Long id;
    /**
     *部门编号
     */
    private String sn;
    /**
     * 部门名称
     */
    private String name;
    /**
     * 部门路径 - 没有用
     */
    private String dirPath;
    /**
     * 部门状态：1启动-默认； 0 禁用
     */
    private Integer state = 1;
    /**
     * 部门经理ID
     */
    private Long manager_id;
    /**
     * 上级部门ID
     */
    private Long parent_id;
    /**
     * 保存上级部门的信息 - 自连接 - 一对一
     */
    private Department parent;
    /**
     * 保存部门经理的信息 与部门多对一
     */
    private Employee manager;
    /**
     * 保存当前部门的子部门
     */
    //部门树最后一级没有数据就不显示
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<Department> children = new ArrayList<>();//成员变量要给默认值，否则报500的错误
    //全局变量可以不用，有默认值
}
